import Vue from 'vue'
import Vuex from 'vuex'

// 导入获取用户信息的请求
import { getUserInfoApi } from '../api/au'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    userInfo: '',
    isLogin: false,
    // 保存性别对象
    genderObj: {
      0: '未知',
      1: '男孩子',
      2: '女孩子'
    }
  },
  getters: {
    // 封装判断状态的方法（点赞&收藏）
    getStatus (state) {
      return function (id, prop) {
        return state.userInfo[prop] && state.userInfo[prop].includes(+id)
      }
    }
  },
  mutations: {
    // 修改userInfo的方法
    setUserInfo (state, value) {
      state.userInfo = value
    },
    // 修改登录状态的方法
    setIsLogin (state, value) {
      state.isLogin = value
    }
  },
  actions: {
    // 封装异步修改用户信息的方法
    async setUserInfoAsync (context) {
      // 获取修改后的用户信息
      const res = await getUserInfoApi()
      // 将获取到的数据保存到state中
      context.commit('setUserInfo', res.data)
    }
  },
  modules: {}
})
